public class test2 {
        public int[] topKFrequent(int[] nums, int k) {
            Map<Integer,Integer> hashmap = new HashMap<>();
            for(int num:nums){
                hashmap.put(num,hashmap.getOrDefault(num,0)+1);
            }

            //使用大顶堆：1、默认为小顶堆，故要颠倒次序 2、利用第二个元素即出现次数进行排序
            //int[0]表示键，int[1]表示值
            PriorityQueue<int[]>pq = new PriorityQueue<>((pair1,pair2)->pair2[1]-pair1[1]);
            //遍历哈希表存储的键值对
            for(Map.Entry<Integer,Integer>entry:hashmap.entrySet()){
                pq.add(new int[]{entry.getKey(),entry.getValue()});
            }
            int[] res = new int[k];
            for(int i = 0;i<k;i++){
                res[i] = pq.poll()[0];
            }
            return res;
        }
}
